Conventionally, a database management system (DBMS) is the computer software that controls the organization, storage, retrieval, security, and integrity of information in a database. Typically, information in a database can be stored utilizing numerous types of objects. For example, information can be stored in tables and access to tables can be facilitated by indices. Other common objects include nested tables, partial tables, index organized tables (IOTs), large objects (LOBs), constraints, triggers and the like.
For any number of reasons, a user may decide to drop the object or group of related objects. For example, the user may feel that the object is no longer necessary, to make more storage space available, or it may be accidental. Regardless of the reason for the drop, a user occasionally needs to recover the objects that have been dropped.
With conventional database applications, the current state of the database is periodically stored. Additionally, a list of transactions that are performed on the database since that state is also stored. When a user decides to retrieve an object that was dropped, the database is rolled-back to the last stored state. After the roll-back, the transactions that were performed after the state was stored can be executed from the list of transactions.
Although this solution can retrieve a dropped object, it is very time consuming. More importantly, during the rollback and roll forward, many times new transactions cannot be processed.
Another approach to manage dropped objects is to use a recycle bin for temporarily storing the dropped items. However, due to space limitations, the recycle bin will only hold objects until there is a storage space requirement and objects need to be purged (or reclaimed) from it periodically.
One problem with this solution is that there is no particular order for which the objects in a recycle bin are purged and as a result, recycle bin items are purged arbitrarily. A user may decide to recover an object from a recycle bin and find that the object was already reclaimed by the system for space requirements.